# -*- coding: utf-8 -*- 
'''
Created on 2011-12-23

@author: TOM
'''
from django.db import models
from website.constant import GENDER_CHOICES, EDUCATION_CHOICES, JOB_STATE_CHOICES


#员工
class Employe(models.Model): 
    name=models.CharField(max_length=50)    #姓名
    gender=models.CharField(max_length=1,blank=True, null=True,choices=GENDER_CHOICES)  #性别
    age=models.IntegerField(max_length=2,blank=True, null=True)
    employed_data=models.DateField(blank=True, null=True)    #入职时间
    positive_data=models.DateField(blank=True, null=True)   #转正时间
    identity_card=models.CharField(max_length=20,blank=True, null=True)   #身份证
    registered_residence=models.CharField(max_length=200,blank=True, null=True) #户籍所在地
    birthday=models.DateField(blank=True, null=True) #生日
    phone=models.CharField(max_length=11,blank=True, null=True) #手机
    email=models.EmailField(blank=True, null=True)
    qq=models.CharField(max_length=20,blank=True, null=True)
    education=models.CharField(max_length=2,blank=True, null=True,choices=EDUCATION_CHOICES)#学历
    profession=models.CharField(max_length=100,blank=True, null=True)#专业
    graduate_school=models.CharField(max_length=200,blank=True, null=True)#毕业学校
    work_experience=models.CharField(max_length=500,blank=True, null=True)#从业经历
    state=models.CharField(max_length=4,blank=True, null=True,choices=JOB_STATE_CHOICES)  #状态  
    leave_date=models.DateField(blank=True, null=True) #离职时间
    company=models.ForeignKey('resourcecontrol.Company',blank=True, null=True,related_name='employe_school')    #校区
    department=models.ForeignKey('resourcecontrol.Department',blank=True, null=True,related_name='employe_department')  #部门
    office=models.ForeignKey('resourcecontrol.Office',blank=True, null=True,related_name='employe_office')  #职务
    course_desc=models.CharField(max_length=255,blank=True, null=True) #课程说明
    # 以下两字段同工资挂勾
    salary_grade=models.CharField(max_length=2,blank=True, null=True)#薪档
    position_level=models.CharField(max_length=2,blank=True, null=True)#级别


#兼职教师 课时价格
class EmployeJZTeacherSalary(models.Model): 
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='jzteachersalary_employe')    #兼职教师
    x1=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    x2=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    x3=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    x4=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    x5=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    x6=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    c1=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    c2=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    c3=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    g1=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    g2=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    g3=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)
    


#员工附件
class EmployeAttachment(models.Model):
    name=models.CharField(max_length=200,blank=True, null=True)
    path=models.CharField(max_length=200,blank=True, null=True)
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='employe_attachment')

#TODO 家庭成员   
class EmployeFamily(models.Model):
    name=models.CharField(max_length=50)
    relation=models.CharField(max_length=20)
    phone=models.CharField(max_length=11)
    remark=models.CharField(max_length=100,blank=True, null=True)
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='family_employe')
    


#TODO 薪资待遇 
class EmployeSalary(models.Model):
    base_salary=models.DecimalField(max_digits=10, decimal_places=2)   #基本工资
    performance_salary=models.DecimalField(max_digits=10, decimal_places=2)    #绩效工资
    office_salary=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) #岗位工资
    traffic_subsidy=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)    #交通补贴
    comm_subsidy=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) #通讯补贴
    food_subsidy=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)  #伙食补贴
    heat_subsidy=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) #高温补贴
    holiday_subsidy=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) #假日补贴
    
# 考勤
class Attendance(models.Model):
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='attendance_employe')# 员工
    normal=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 出勤
    no_card=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 未打卡
    dead=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 丧假
    fall_ill=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 病假
    no_work=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 旷工
    donothing=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 事假
    arrive_late=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 迟到
    work_overtime=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 加班
    month_fee=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 全勤工资
    attendance_deduction=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 考勤扣款
    other_deduction=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 行政奖罚
    out_deduction=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 离退职调整金额
    market_deduction=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 市场费用奖罚
    month = models.CharField(max_length=10,blank=True, null=True)# 月份
    
# 保险
class EmployeInsure(models.Model):
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='insure_employe')# 员工
    month = models.DateField(blank=True, null=True)#月份
    a=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#养老
    b=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#医疗
    c=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#失业
    d=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#工伤
    e=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#生育
    f=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#个人所得税
    
    
    
# 员工绩效
class EmployePerformance(models.Model):
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='performance_employe')# 员工
    month = models.DateField(blank=True, null=True)#月份
    self_no=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#自评分
    department_no=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#部门评分
    department_man=models.ForeignKey(Employe,blank=True, null=True,related_name='performance_dep_employe')# 部门评分人
    headquarter_no=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#总部评分
    headquarter_man=models.ForeignKey(Employe,blank=True, null=True,related_name='performance_hd_employe')# 总部评分人    
    finally_no=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#最终分
    finally_man=models.ForeignKey(Employe,blank=True, null=True,related_name='performance_fin_employe')# 最终评定人
    remark=models.CharField(max_length=10,blank=True, null=True) ;
    state=models.IntegerField(max_length=2,blank=True, null=True)# 状态 0预制，1有效，11部门待审核,12校区待审核,13总部待审核,  23总部驳回,22校区驳回，21主管驳回
    content=models.TextField(blank=True, null=True)


    
    
    
    
    
    
    
    
    
    
    
    
    
    